//package com.itheima.aop;
//
//import com.itheima.mapper.OperateLogMapper;
//import com.itheima.pojo.OperateLog;
//import com.itheima.utils.CurrentHolder;
//import lombok.extern.slf4j.Slf4j;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.Around;
//import org.aspectj.lang.annotation.Aspect;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.time.LocalDateTime;
//import java.util.Arrays;
//@Component
//@Aspect
//@Slf4j
////记录操作部门日志
//public class OperateLogAspect2 {
//    @Autowired
//   private OperateLogMapper operateLogMapper;
//    //切点表达式
//    @Around("@annotation(com.itheima.annotation.Log)")
//    public Object recordLog(ProceedingJoinPoint joinPoint) throws Throwable {
//        //1 记录开始时间
//        long begin = System.currentTimeMillis();
//        //2 执行原始方法
//        Object result = joinPoint.proceed();
//        //3 记录结束时间
//        long end = System.currentTimeMillis();
//        long costTime = end - begin;
//
//        //4 创建操作日志对象
//        OperateLog operateLog = new OperateLog();
//        //5 设置对象属性
//        operateLog.setOperateEmpId(getCurrentEmpId());//设置当前登录员工的id
//        operateLog.setOperateTime(LocalDateTime.now());//设置当前操作时间
//        operateLog.setClassName(joinPoint.getTarget().getClass().getName());//记录当前的·操作类
//        operateLog.setMethodName(joinPoint.getSignature().getName());//记录当前操作的方法名
//        operateLog.setMethodParams(Arrays.toString(joinPoint.getArgs()));//记录当前方法参数
//        operateLog.setReturnValue(result != null ? result.toString() : "void");
//        operateLog.setCostTime(costTime);//记录当前方法花费的时间
//        //6 调用mapper，执行日志插入操作
//        log.info("操作日志：{}", operateLog);
//        operateLogMapper.insert(operateLog);
//        //7 返回原始结果
//        return result;
//
//
//    }
//
//    private Integer getCurrentEmpId() {
//        return CurrentHolder.getCurrentId();
//    }
//
//
//}
